﻿using System;
using NHibernate;
using CRC.Clases;
using CRC.NHibernate;
using CRC.Inspecciones.Dominio.Clases;

namespace CRC.Inspecciones.Dominio.Controlador
{
    class Controlador_EliminarZona
    {
        public void EliminarZona(int pIntZona)
        {
            ISession session = null;
            ITransaction tx = null;
            try 
            {
                session = NHibernateHelper.GetCurrentSession();
                tx = session.BeginTransaction();

                Zona zona = (Zona)session.Load(typeof(Zona), pIntZona);

                if (zona.Salones.Count > 0)
                {
                    throw new Exception("La zona tiene salones. No se puede eliminar.");
                }
                //zona.Inspector.ZonaAsignada = null;
                session.Delete(zona);
                tx.Commit();
            }
            catch (HibernateException he)
            {
                if (tx != null) { tx.Rollback(); }
                session.Close();
                throw he;
            }
        }
    }
}
